package org.begincode.core.model;

import java.util.ArrayList;
import java.util.List;

public class CourseExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public CourseExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andCourseIdIsNull() {
            addCriterion("course_id is null");
            return (Criteria) this;
        }

        public Criteria andCourseIdIsNotNull() {
            addCriterion("course_id is not null");
            return (Criteria) this;
        }

        public Criteria andCourseIdEqualTo(Integer value) {
            addCriterion("course_id =", value, "courseId");
            return (Criteria) this;
        }

        public Criteria andCourseIdNotEqualTo(Integer value) {
            addCriterion("course_id <>", value, "courseId");
            return (Criteria) this;
        }

        public Criteria andCourseIdGreaterThan(Integer value) {
            addCriterion("course_id >", value, "courseId");
            return (Criteria) this;
        }

        public Criteria andCourseIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("course_id >=", value, "courseId");
            return (Criteria) this;
        }

        public Criteria andCourseIdLessThan(Integer value) {
            addCriterion("course_id <", value, "courseId");
            return (Criteria) this;
        }

        public Criteria andCourseIdLessThanOrEqualTo(Integer value) {
            addCriterion("course_id <=", value, "courseId");
            return (Criteria) this;
        }

        public Criteria andCourseIdIn(List<Integer> values) {
            addCriterion("course_id in", values, "courseId");
            return (Criteria) this;
        }

        public Criteria andCourseIdNotIn(List<Integer> values) {
            addCriterion("course_id not in", values, "courseId");
            return (Criteria) this;
        }

        public Criteria andCourseIdBetween(Integer value1, Integer value2) {
            addCriterion("course_id between", value1, value2, "courseId");
            return (Criteria) this;
        }

        public Criteria andCourseIdNotBetween(Integer value1, Integer value2) {
            addCriterion("course_id not between", value1, value2, "courseId");
            return (Criteria) this;
        }

        public Criteria andCourseNameIsNull() {
            addCriterion("course_name is null");
            return (Criteria) this;
        }

        public Criteria andCourseNameIsNotNull() {
            addCriterion("course_name is not null");
            return (Criteria) this;
        }

        public Criteria andCourseNameEqualTo(String value) {
            addCriterion("course_name =", value, "courseName");
            return (Criteria) this;
        }

        public Criteria andCourseNameNotEqualTo(String value) {
            addCriterion("course_name <>", value, "courseName");
            return (Criteria) this;
        }

        public Criteria andCourseNameGreaterThan(String value) {
            addCriterion("course_name >", value, "courseName");
            return (Criteria) this;
        }

        public Criteria andCourseNameGreaterThanOrEqualTo(String value) {
            addCriterion("course_name >=", value, "courseName");
            return (Criteria) this;
        }

        public Criteria andCourseNameLessThan(String value) {
            addCriterion("course_name <", value, "courseName");
            return (Criteria) this;
        }

        public Criteria andCourseNameLessThanOrEqualTo(String value) {
            addCriterion("course_name <=", value, "courseName");
            return (Criteria) this;
        }

        public Criteria andCourseNameLike(String value) {
            addCriterion("course_name like", value, "courseName");
            return (Criteria) this;
        }

        public Criteria andCourseNameNotLike(String value) {
            addCriterion("course_name not like", value, "courseName");
            return (Criteria) this;
        }

        public Criteria andCourseNameIn(List<String> values) {
            addCriterion("course_name in", values, "courseName");
            return (Criteria) this;
        }

        public Criteria andCourseNameNotIn(List<String> values) {
            addCriterion("course_name not in", values, "courseName");
            return (Criteria) this;
        }

        public Criteria andCourseNameBetween(String value1, String value2) {
            addCriterion("course_name between", value1, value2, "courseName");
            return (Criteria) this;
        }

        public Criteria andCourseNameNotBetween(String value1, String value2) {
            addCriterion("course_name not between", value1, value2, "courseName");
            return (Criteria) this;
        }

        public Criteria andCoursePicUrlIsNull() {
            addCriterion("course_pic_url is null");
            return (Criteria) this;
        }

        public Criteria andCoursePicUrlIsNotNull() {
            addCriterion("course_pic_url is not null");
            return (Criteria) this;
        }

        public Criteria andCoursePicUrlEqualTo(String value) {
            addCriterion("course_pic_url =", value, "coursePicUrl");
            return (Criteria) this;
        }

        public Criteria andCoursePicUrlNotEqualTo(String value) {
            addCriterion("course_pic_url <>", value, "coursePicUrl");
            return (Criteria) this;
        }

        public Criteria andCoursePicUrlGreaterThan(String value) {
            addCriterion("course_pic_url >", value, "coursePicUrl");
            return (Criteria) this;
        }

        public Criteria andCoursePicUrlGreaterThanOrEqualTo(String value) {
            addCriterion("course_pic_url >=", value, "coursePicUrl");
            return (Criteria) this;
        }

        public Criteria andCoursePicUrlLessThan(String value) {
            addCriterion("course_pic_url <", value, "coursePicUrl");
            return (Criteria) this;
        }

        public Criteria andCoursePicUrlLessThanOrEqualTo(String value) {
            addCriterion("course_pic_url <=", value, "coursePicUrl");
            return (Criteria) this;
        }

        public Criteria andCoursePicUrlLike(String value) {
            addCriterion("course_pic_url like", value, "coursePicUrl");
            return (Criteria) this;
        }

        public Criteria andCoursePicUrlNotLike(String value) {
            addCriterion("course_pic_url not like", value, "coursePicUrl");
            return (Criteria) this;
        }

        public Criteria andCoursePicUrlIn(List<String> values) {
            addCriterion("course_pic_url in", values, "coursePicUrl");
            return (Criteria) this;
        }

        public Criteria andCoursePicUrlNotIn(List<String> values) {
            addCriterion("course_pic_url not in", values, "coursePicUrl");
            return (Criteria) this;
        }

        public Criteria andCoursePicUrlBetween(String value1, String value2) {
            addCriterion("course_pic_url between", value1, value2, "coursePicUrl");
            return (Criteria) this;
        }

        public Criteria andCoursePicUrlNotBetween(String value1, String value2) {
            addCriterion("course_pic_url not between", value1, value2, "coursePicUrl");
            return (Criteria) this;
        }

        public Criteria andIntroductionIsNull() {
            addCriterion("introduction is null");
            return (Criteria) this;
        }

        public Criteria andIntroductionIsNotNull() {
            addCriterion("introduction is not null");
            return (Criteria) this;
        }

        public Criteria andIntroductionEqualTo(String value) {
            addCriterion("introduction =", value, "introduction");
            return (Criteria) this;
        }

        public Criteria andIntroductionNotEqualTo(String value) {
            addCriterion("introduction <>", value, "introduction");
            return (Criteria) this;
        }

        public Criteria andIntroductionGreaterThan(String value) {
            addCriterion("introduction >", value, "introduction");
            return (Criteria) this;
        }

        public Criteria andIntroductionGreaterThanOrEqualTo(String value) {
            addCriterion("introduction >=", value, "introduction");
            return (Criteria) this;
        }

        public Criteria andIntroductionLessThan(String value) {
            addCriterion("introduction <", value, "introduction");
            return (Criteria) this;
        }

        public Criteria andIntroductionLessThanOrEqualTo(String value) {
            addCriterion("introduction <=", value, "introduction");
            return (Criteria) this;
        }

        public Criteria andIntroductionLike(String value) {
            addCriterion("introduction like", value, "introduction");
            return (Criteria) this;
        }

        public Criteria andIntroductionNotLike(String value) {
            addCriterion("introduction not like", value, "introduction");
            return (Criteria) this;
        }

        public Criteria andIntroductionIn(List<String> values) {
            addCriterion("introduction in", values, "introduction");
            return (Criteria) this;
        }

        public Criteria andIntroductionNotIn(List<String> values) {
            addCriterion("introduction not in", values, "introduction");
            return (Criteria) this;
        }

        public Criteria andIntroductionBetween(String value1, String value2) {
            addCriterion("introduction between", value1, value2, "introduction");
            return (Criteria) this;
        }

        public Criteria andIntroductionNotBetween(String value1, String value2) {
            addCriterion("introduction not between", value1, value2, "introduction");
            return (Criteria) this;
        }

        public Criteria andRecommendIsNull() {
            addCriterion("recommend is null");
            return (Criteria) this;
        }

        public Criteria andRecommendIsNotNull() {
            addCriterion("recommend is not null");
            return (Criteria) this;
        }

        public Criteria andRecommendEqualTo(String value) {
            addCriterion("recommend =", value, "recommend");
            return (Criteria) this;
        }

        public Criteria andRecommendNotEqualTo(String value) {
            addCriterion("recommend <>", value, "recommend");
            return (Criteria) this;
        }

        public Criteria andRecommendGreaterThan(String value) {
            addCriterion("recommend >", value, "recommend");
            return (Criteria) this;
        }

        public Criteria andRecommendGreaterThanOrEqualTo(String value) {
            addCriterion("recommend >=", value, "recommend");
            return (Criteria) this;
        }

        public Criteria andRecommendLessThan(String value) {
            addCriterion("recommend <", value, "recommend");
            return (Criteria) this;
        }

        public Criteria andRecommendLessThanOrEqualTo(String value) {
            addCriterion("recommend <=", value, "recommend");
            return (Criteria) this;
        }

        public Criteria andRecommendLike(String value) {
            addCriterion("recommend like", value, "recommend");
            return (Criteria) this;
        }

        public Criteria andRecommendNotLike(String value) {
            addCriterion("recommend not like", value, "recommend");
            return (Criteria) this;
        }

        public Criteria andRecommendIn(List<String> values) {
            addCriterion("recommend in", values, "recommend");
            return (Criteria) this;
        }

        public Criteria andRecommendNotIn(List<String> values) {
            addCriterion("recommend not in", values, "recommend");
            return (Criteria) this;
        }

        public Criteria andRecommendBetween(String value1, String value2) {
            addCriterion("recommend between", value1, value2, "recommend");
            return (Criteria) this;
        }

        public Criteria andRecommendNotBetween(String value1, String value2) {
            addCriterion("recommend not between", value1, value2, "recommend");
            return (Criteria) this;
        }

        public Criteria andAttentionCountIsNull() {
            addCriterion("attention_count is null");
            return (Criteria) this;
        }

        public Criteria andAttentionCountIsNotNull() {
            addCriterion("attention_count is not null");
            return (Criteria) this;
        }

        public Criteria andAttentionCountEqualTo(Integer value) {
            addCriterion("attention_count =", value, "attentionCount");
            return (Criteria) this;
        }

        public Criteria andAttentionCountNotEqualTo(Integer value) {
            addCriterion("attention_count <>", value, "attentionCount");
            return (Criteria) this;
        }

        public Criteria andAttentionCountGreaterThan(Integer value) {
            addCriterion("attention_count >", value, "attentionCount");
            return (Criteria) this;
        }

        public Criteria andAttentionCountGreaterThanOrEqualTo(Integer value) {
            addCriterion("attention_count >=", value, "attentionCount");
            return (Criteria) this;
        }

        public Criteria andAttentionCountLessThan(Integer value) {
            addCriterion("attention_count <", value, "attentionCount");
            return (Criteria) this;
        }

        public Criteria andAttentionCountLessThanOrEqualTo(Integer value) {
            addCriterion("attention_count <=", value, "attentionCount");
            return (Criteria) this;
        }

        public Criteria andAttentionCountIn(List<Integer> values) {
            addCriterion("attention_count in", values, "attentionCount");
            return (Criteria) this;
        }

        public Criteria andAttentionCountNotIn(List<Integer> values) {
            addCriterion("attention_count not in", values, "attentionCount");
            return (Criteria) this;
        }

        public Criteria andAttentionCountBetween(Integer value1, Integer value2) {
            addCriterion("attention_count between", value1, value2, "attentionCount");
            return (Criteria) this;
        }

        public Criteria andAttentionCountNotBetween(Integer value1, Integer value2) {
            addCriterion("attention_count not between", value1, value2, "attentionCount");
            return (Criteria) this;
        }

        public Criteria andUserIdIsNull() {
            addCriterion("user_id is null");
            return (Criteria) this;
        }

        public Criteria andUserIdIsNotNull() {
            addCriterion("user_id is not null");
            return (Criteria) this;
        }

        public Criteria andUserIdEqualTo(Integer value) {
            addCriterion("user_id =", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotEqualTo(Integer value) {
            addCriterion("user_id <>", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdGreaterThan(Integer value) {
            addCriterion("user_id >", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("user_id >=", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdLessThan(Integer value) {
            addCriterion("user_id <", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdLessThanOrEqualTo(Integer value) {
            addCriterion("user_id <=", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdIn(List<Integer> values) {
            addCriterion("user_id in", values, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotIn(List<Integer> values) {
            addCriterion("user_id not in", values, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdBetween(Integer value1, Integer value2) {
            addCriterion("user_id between", value1, value2, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotBetween(Integer value1, Integer value2) {
            addCriterion("user_id not between", value1, value2, "userId");
            return (Criteria) this;
        }

        public Criteria andProducerIntroductionIsNull() {
            addCriterion("producer_introduction is null");
            return (Criteria) this;
        }

        public Criteria andProducerIntroductionIsNotNull() {
            addCriterion("producer_introduction is not null");
            return (Criteria) this;
        }

        public Criteria andProducerIntroductionEqualTo(String value) {
            addCriterion("producer_introduction =", value, "producerIntroduction");
            return (Criteria) this;
        }

        public Criteria andProducerIntroductionNotEqualTo(String value) {
            addCriterion("producer_introduction <>", value, "producerIntroduction");
            return (Criteria) this;
        }

        public Criteria andProducerIntroductionGreaterThan(String value) {
            addCriterion("producer_introduction >", value, "producerIntroduction");
            return (Criteria) this;
        }

        public Criteria andProducerIntroductionGreaterThanOrEqualTo(String value) {
            addCriterion("producer_introduction >=", value, "producerIntroduction");
            return (Criteria) this;
        }

        public Criteria andProducerIntroductionLessThan(String value) {
            addCriterion("producer_introduction <", value, "producerIntroduction");
            return (Criteria) this;
        }

        public Criteria andProducerIntroductionLessThanOrEqualTo(String value) {
            addCriterion("producer_introduction <=", value, "producerIntroduction");
            return (Criteria) this;
        }

        public Criteria andProducerIntroductionLike(String value) {
            addCriterion("producer_introduction like", value, "producerIntroduction");
            return (Criteria) this;
        }

        public Criteria andProducerIntroductionNotLike(String value) {
            addCriterion("producer_introduction not like", value, "producerIntroduction");
            return (Criteria) this;
        }

        public Criteria andProducerIntroductionIn(List<String> values) {
            addCriterion("producer_introduction in", values, "producerIntroduction");
            return (Criteria) this;
        }

        public Criteria andProducerIntroductionNotIn(List<String> values) {
            addCriterion("producer_introduction not in", values, "producerIntroduction");
            return (Criteria) this;
        }

        public Criteria andProducerIntroductionBetween(String value1, String value2) {
            addCriterion("producer_introduction between", value1, value2, "producerIntroduction");
            return (Criteria) this;
        }

        public Criteria andProducerIntroductionNotBetween(String value1, String value2) {
            addCriterion("producer_introduction not between", value1, value2, "producerIntroduction");
            return (Criteria) this;
        }

        public Criteria andCompletionStatusIsNull() {
            addCriterion("completion_status is null");
            return (Criteria) this;
        }

        public Criteria andCompletionStatusIsNotNull() {
            addCriterion("completion_status is not null");
            return (Criteria) this;
        }

        public Criteria andCompletionStatusEqualTo(String value) {
            addCriterion("completion_status =", value, "completionStatus");
            return (Criteria) this;
        }

        public Criteria andCompletionStatusNotEqualTo(String value) {
            addCriterion("completion_status <>", value, "completionStatus");
            return (Criteria) this;
        }

        public Criteria andCompletionStatusGreaterThan(String value) {
            addCriterion("completion_status >", value, "completionStatus");
            return (Criteria) this;
        }

        public Criteria andCompletionStatusGreaterThanOrEqualTo(String value) {
            addCriterion("completion_status >=", value, "completionStatus");
            return (Criteria) this;
        }

        public Criteria andCompletionStatusLessThan(String value) {
            addCriterion("completion_status <", value, "completionStatus");
            return (Criteria) this;
        }

        public Criteria andCompletionStatusLessThanOrEqualTo(String value) {
            addCriterion("completion_status <=", value, "completionStatus");
            return (Criteria) this;
        }

        public Criteria andCompletionStatusLike(String value) {
            addCriterion("completion_status like", value, "completionStatus");
            return (Criteria) this;
        }

        public Criteria andCompletionStatusNotLike(String value) {
            addCriterion("completion_status not like", value, "completionStatus");
            return (Criteria) this;
        }

        public Criteria andCompletionStatusIn(List<String> values) {
            addCriterion("completion_status in", values, "completionStatus");
            return (Criteria) this;
        }

        public Criteria andCompletionStatusNotIn(List<String> values) {
            addCriterion("completion_status not in", values, "completionStatus");
            return (Criteria) this;
        }

        public Criteria andCompletionStatusBetween(String value1, String value2) {
            addCriterion("completion_status between", value1, value2, "completionStatus");
            return (Criteria) this;
        }

        public Criteria andCompletionStatusNotBetween(String value1, String value2) {
            addCriterion("completion_status not between", value1, value2, "completionStatus");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagIsNull() {
            addCriterion("delete_flag is null");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagIsNotNull() {
            addCriterion("delete_flag is not null");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagEqualTo(String value) {
            addCriterion("delete_flag =", value, "deleteFlag");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagNotEqualTo(String value) {
            addCriterion("delete_flag <>", value, "deleteFlag");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagGreaterThan(String value) {
            addCriterion("delete_flag >", value, "deleteFlag");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagGreaterThanOrEqualTo(String value) {
            addCriterion("delete_flag >=", value, "deleteFlag");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagLessThan(String value) {
            addCriterion("delete_flag <", value, "deleteFlag");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagLessThanOrEqualTo(String value) {
            addCriterion("delete_flag <=", value, "deleteFlag");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagLike(String value) {
            addCriterion("delete_flag like", value, "deleteFlag");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagNotLike(String value) {
            addCriterion("delete_flag not like", value, "deleteFlag");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagIn(List<String> values) {
            addCriterion("delete_flag in", values, "deleteFlag");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagNotIn(List<String> values) {
            addCriterion("delete_flag not in", values, "deleteFlag");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagBetween(String value1, String value2) {
            addCriterion("delete_flag between", value1, value2, "deleteFlag");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagNotBetween(String value1, String value2) {
            addCriterion("delete_flag not between", value1, value2, "deleteFlag");
            return (Criteria) this;
        }

        public Criteria andCourseLabelIdIsNull() {
            addCriterion("course_label_id is null");
            return (Criteria) this;
        }

        public Criteria andCourseLabelIdIsNotNull() {
            addCriterion("course_label_id is not null");
            return (Criteria) this;
        }

        public Criteria andCourseLabelIdEqualTo(Integer value) {
            addCriterion("course_label_id =", value, "courseLabelId");
            return (Criteria) this;
        }

        public Criteria andCourseLabelIdNotEqualTo(Integer value) {
            addCriterion("course_label_id <>", value, "courseLabelId");
            return (Criteria) this;
        }

        public Criteria andCourseLabelIdGreaterThan(Integer value) {
            addCriterion("course_label_id >", value, "courseLabelId");
            return (Criteria) this;
        }

        public Criteria andCourseLabelIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("course_label_id >=", value, "courseLabelId");
            return (Criteria) this;
        }

        public Criteria andCourseLabelIdLessThan(Integer value) {
            addCriterion("course_label_id <", value, "courseLabelId");
            return (Criteria) this;
        }

        public Criteria andCourseLabelIdLessThanOrEqualTo(Integer value) {
            addCriterion("course_label_id <=", value, "courseLabelId");
            return (Criteria) this;
        }

        public Criteria andCourseLabelIdIn(List<Integer> values) {
            addCriterion("course_label_id in", values, "courseLabelId");
            return (Criteria) this;
        }

        public Criteria andCourseLabelIdNotIn(List<Integer> values) {
            addCriterion("course_label_id not in", values, "courseLabelId");
            return (Criteria) this;
        }

        public Criteria andCourseLabelIdBetween(Integer value1, Integer value2) {
            addCriterion("course_label_id between", value1, value2, "courseLabelId");
            return (Criteria) this;
        }

        public Criteria andCourseLabelIdNotBetween(Integer value1, Integer value2) {
            addCriterion("course_label_id not between", value1, value2, "courseLabelId");
            return (Criteria) this;
        }

        public Criteria andCourseLevelIdIsNull() {
            addCriterion("course_level_id is null");
            return (Criteria) this;
        }

        public Criteria andCourseLevelIdIsNotNull() {
            addCriterion("course_level_id is not null");
            return (Criteria) this;
        }

        public Criteria andCourseLevelIdEqualTo(Integer value) {
            addCriterion("course_level_id =", value, "courseLevelId");
            return (Criteria) this;
        }

        public Criteria andCourseLevelIdNotEqualTo(Integer value) {
            addCriterion("course_level_id <>", value, "courseLevelId");
            return (Criteria) this;
        }

        public Criteria andCourseLevelIdGreaterThan(Integer value) {
            addCriterion("course_level_id >", value, "courseLevelId");
            return (Criteria) this;
        }

        public Criteria andCourseLevelIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("course_level_id >=", value, "courseLevelId");
            return (Criteria) this;
        }

        public Criteria andCourseLevelIdLessThan(Integer value) {
            addCriterion("course_level_id <", value, "courseLevelId");
            return (Criteria) this;
        }

        public Criteria andCourseLevelIdLessThanOrEqualTo(Integer value) {
            addCriterion("course_level_id <=", value, "courseLevelId");
            return (Criteria) this;
        }

        public Criteria andCourseLevelIdIn(List<Integer> values) {
            addCriterion("course_level_id in", values, "courseLevelId");
            return (Criteria) this;
        }

        public Criteria andCourseLevelIdNotIn(List<Integer> values) {
            addCriterion("course_level_id not in", values, "courseLevelId");
            return (Criteria) this;
        }

        public Criteria andCourseLevelIdBetween(Integer value1, Integer value2) {
            addCriterion("course_level_id between", value1, value2, "courseLevelId");
            return (Criteria) this;
        }

        public Criteria andCourseLevelIdNotBetween(Integer value1, Integer value2) {
            addCriterion("course_level_id not between", value1, value2, "courseLevelId");
            return (Criteria) this;
        }

        public Criteria andCourseTypeIdIsNull() {
            addCriterion("course_type_id is null");
            return (Criteria) this;
        }

        public Criteria andCourseTypeIdIsNotNull() {
            addCriterion("course_type_id is not null");
            return (Criteria) this;
        }

        public Criteria andCourseTypeIdEqualTo(Integer value) {
            addCriterion("course_type_id =", value, "courseTypeId");
            return (Criteria) this;
        }

        public Criteria andCourseTypeIdNotEqualTo(Integer value) {
            addCriterion("course_type_id <>", value, "courseTypeId");
            return (Criteria) this;
        }

        public Criteria andCourseTypeIdGreaterThan(Integer value) {
            addCriterion("course_type_id >", value, "courseTypeId");
            return (Criteria) this;
        }

        public Criteria andCourseTypeIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("course_type_id >=", value, "courseTypeId");
            return (Criteria) this;
        }

        public Criteria andCourseTypeIdLessThan(Integer value) {
            addCriterion("course_type_id <", value, "courseTypeId");
            return (Criteria) this;
        }

        public Criteria andCourseTypeIdLessThanOrEqualTo(Integer value) {
            addCriterion("course_type_id <=", value, "courseTypeId");
            return (Criteria) this;
        }

        public Criteria andCourseTypeIdIn(List<Integer> values) {
            addCriterion("course_type_id in", values, "courseTypeId");
            return (Criteria) this;
        }

        public Criteria andCourseTypeIdNotIn(List<Integer> values) {
            addCriterion("course_type_id not in", values, "courseTypeId");
            return (Criteria) this;
        }

        public Criteria andCourseTypeIdBetween(Integer value1, Integer value2) {
            addCriterion("course_type_id between", value1, value2, "courseTypeId");
            return (Criteria) this;
        }

        public Criteria andCourseTypeIdNotBetween(Integer value1, Integer value2) {
            addCriterion("course_type_id not between", value1, value2, "courseTypeId");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}